-- *****************************************************************
-- CISCO-TELCO-PHY-DEV-MIB.my:  CISCO-TELCO-PHY-DEV MIB file
--
-- September 1998, David Kushi
--
-- Copyright (c) 1998-1999 by Cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************
--
-- *****************************************************************
-- $Endlog$
--
CISCO-TELCO-PHY-DEV-MIB DEFINITIONS ::= BEGIN

IMPORTS
        ciscoMgmt                         FROM CISCO-SMI
        entPhysicalIndex                  FROM ENTITY-MIB
        MODULE-IDENTITY,    OBJECT-TYPE   FROM SNMPv2-SMI
        TEXTUAL-CONVENTION, TimeStamp     FROM SNMPv2-TC
        MODULE-COMPLIANCE,  OBJECT-GROUP  FROM SNMPv2-CONF;

ciscoTelcoPhyDevMIB   MODULE-IDENTITY
        LAST-UPDATED    "9811010000Z"
        ORGANIZATION    "Cisco System Inc."
        CONTACT-INFO
                "       Cisco Systems
                        Customer Service

                Postal: 170 West Tasman Drive,
                        San Jose CA 95134-1706.
                        USA

                   Tel: +1 800 553-NETS

                E-mail: cs-atm@cisco.com"
        DESCRIPTION
                "The MIB module for the management of Telco physical modules
                in Cisco devices.  Telco physical modules are physical modules
                that are used to fulfill requirements specific to the Telco 
                environment.  This MIB provides for the management of these 
                physical modules:

                A network clock module, a physical module that provides for 
                network clock synchronization (the clocking of the physical
                interfaces) within the device.

                An alarm module, a physical module that provides visual 
                indicators and mechanical relays used in conjunction with 
                externally attached devices to alert maintenance personnel
                of abnormal conditions within the device."
        ::= { ciscoMgmt 119 }

-- CISCO-TELCO-PHY-DEV MIB groups
ciscoTelcoPhyDevMIBObjects  OBJECT IDENTIFIER ::= { ciscoTelcoPhyDevMIB 1 }

ctdNetClock OBJECT IDENTIFIER ::= { ciscoTelcoPhyDevMIBObjects 1 }
ctdAlarm    OBJECT IDENTIFIER ::= { ciscoTelcoPhyDevMIBObjects 2 }

-- textual conventions

AlarmRelay ::= TEXTUAL-CONVENTION
        STATUS        current
        DESCRIPTION   
                "Status of an alarm relay.

                'open'   alarm relay contact is open
                'closed' alarm relay contact is closed"
        SYNTAX  INTEGER { open(1),
                          closed(2)
                        }

AlarmStatus ::= TEXTUAL-CONVENTION
        STATUS        current
        DESCRIPTION   
                "Status of an alarm.

                'alarmed'    alarm condition is present
                'notAlarmed' alarm condition is not present"
        SYNTAX  INTEGER { alarmed(1),
                          notAlarmed(2)
                        }

-- table of objects representing network clock modules

ctdNetClockTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF CtdNetClockEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
                "A table containing information for the management 
                of Telco network clock modules in Cisco devices."
    ::= { ctdNetClock 1 }

ctdNetClockEntry OBJECT-TYPE
    SYNTAX     CtdNetClockEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
                "Information for the management of a Telco network clock 
                module in Cisco devices.

                The entPhysicalIndex in the INDEX clause identifies the
                physical location in the chassis in which the network clock
                module is installed.

                A row in this table is created by the managed system and
                disappears when the associated physical entity disappears.
                The managed system creates a row when it detects the presence
                of a network clock module within the chassis.  Thus if a
                network clock module is not installed or detectable within the
                chassis, a row is not created.

                When a row is created all of the row objects are instantiated.

                There are objects in this table that make reference to BITS.
                BITS is an acronym for Building Integrated Timing Supply
                and is explained in more detail in Bell Communications
                Research, GR-436-CORE, 'Digital Network Synchronization Plan'.)"
    INDEX { entPhysicalIndex }
    ::= { ctdNetClockTable 1 }

CtdNetClockEntry ::=
        SEQUENCE {
                ctdNetClockOnlineStatus         INTEGER,
                ctdNetClockOscillatorHealth     INTEGER,
                ctdNetClockBITSLineMode         INTEGER,
                ctdNetClockBITS0OperStatus      INTEGER,
                ctdNetClockBITS1OperStatus      INTEGER
        }

ctdNetClockOnlineStatus OBJECT-TYPE
        SYNTAX        INTEGER { active(1),
                                backup(2),
                                inOperable(3),
                                offLine(4)
                                }                               
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   
                "Online status of the network clock module.

                a value of 'active' indicates that the network clock module
                is currently in use as the primary network clock module and is 
                actively supplying clock to the managed system.

                a value of 'backup' indicates that the network clock module is 
                currently in use as backup to the primary clock module and is
                actively supplying a backup clock to the managed system.

                a value of 'inOperable' indicates that the network clock module
                is inoperable.  If the status of the network clock module 
                changes from 'active' to 'inOperable' the managed system will
                switchover to a network clock module having status 'backup'
                causing it to become the primary clock module and have status
                'active'.

                a value of 'offLine' indicates that the network clock module
                is offline (not in use)."
        ::= { ctdNetClockEntry 1 }

ctdNetClockOscillatorHealth OBJECT-TYPE
        SYNTAX        INTEGER { good(1),
                                bad(2)
                                }
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   
                "An indication of the health of the network clock module's
                onboard oscillator.  

                When the value is 'good' the underlying hardware reports that
                the operation of the oscillator is normal.

                When the value is repeatedly 'bad' when polled at five minute
                intervals for a period of seven days the underlying hardware
                reports that the health of the oscillator may be bad and 
                may require attention.  Note that when the clock module is 
                tracking a poor source of network clock, repeated values of 
                'bad' may falsely indicate that the health of the oscillator 
                is 'bad' when it is actually 'good'."
        ::= { ctdNetClockEntry 2 }

ctdNetClockBITSLineMode OBJECT-TYPE
        SYNTAX        INTEGER { t1(1),
                                e1(2)
                                }
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
                "The line mode of the network clock modules' BITS ports

                When the value is 't1' all BITS ports on the network clock
                module are operating in T1 mode.

                When the value is 'e1' all BITS ports on the network clock
                module are operating in E1 mode."
        ::= { ctdNetClockEntry 3 }

ctdNetClockBITS0OperStatus OBJECT-TYPE
        SYNTAX        INTEGER { up(1),
                                down(2) }
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "The operational status of BITS port 0.

                'up' indicates that the operational status of BITS 
                port 0 is up.

                'down' indicates that the operational status of BITS 
                port 0 is down."
        ::= { ctdNetClockEntry 4 }

ctdNetClockBITS1OperStatus OBJECT-TYPE
        SYNTAX        INTEGER { up(1),
                                down(2) }
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "The operational status of BITS port 1.

                'up' indicates that the operational status of BITS 
                port 1 is up.

                'down' indicates that the operational status of BITS 
                port 1 is down."
        ::= { ctdNetClockEntry 5 }

-- table of objects representing telco alarm modules

ctdAlarmTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF CtdAlarmEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
                "A table containing information for the management 
                of Telco alarm modules in Cisco devices."
    ::= { ctdAlarm 1 }

ctdAlarmEntry OBJECT-TYPE
    SYNTAX     CtdAlarmEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
                "Information for the management of Telco alarm modules
                in Cisco devices.

                The entPhysicalIndex in the INDEX clause identifies the
                physical location in the chassis in which the alarm module
                is installed.

                A row in this table is created by the managed system and
                disappears when the associated physical entity disappears.
                The managed system creates a row when it detects the presence
                of an alarm module within the chassis.  Thus if an alarm module
                is not installed or detectable within the chassis, a row is
                not created.

                When a row is created all of the row objects are instantiated."
    INDEX { entPhysicalIndex }
    ::= { ctdAlarmTable 1 }

CtdAlarmEntry ::=
        SEQUENCE {
                ctdAlarmMinorAlarmStatus        AlarmStatus,
                ctdAlarmMajorAlarmStatus        AlarmStatus,
                ctdAlarmCriticalAlarmStatus     AlarmStatus,
                ctdAlarmMinorAlarmRelay         AlarmRelay,
                ctdAlarmMajorAlarmRelay         AlarmRelay,
                ctdAlarmCriticalAlarmRelay      AlarmRelay,
                ctdAlarmMinorAlarmTimeStamp     TimeStamp,
                ctdAlarmMajorAlarmTimeStamp     TimeStamp,
                ctdAlarmCriticalAlarmTimeStamp  TimeStamp,
                ctdAlarmRelayReset              INTEGER
        }

ctdAlarmMinorAlarmStatus OBJECT-TYPE
        SYNTAX        AlarmStatus
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
                "Minor alarm status of alarm module.

                A write operation on this object with value 'alarmed' causes the
                managed system to place the underlying minor alarm hardware 
                into an alarmed state.

                A write operation on this object will affect the value of 
                'ctdAlarmMinorAlarmRelay'.  After a write operation on this 
                object with value 'alarmed' completes, the value of 
                'ctdAlarmMinorAlarmRelay' is 'closed'.  After a write operation
                on this object with value 'notAlarmed' completes, the value of 
                'ctdAlarmMinorAlarmRelay' is 'open'.

                A read operation on this object returns value 'alarmed' if and
                only if the underlying minor alarm hardware is in an alarmed
                state, otherwise it returns 'notAlarmed'.

                The value of this object may be affected by the device's local
                management interface and also by the managed system upon the 
                detection of an alarmable condition.  Conditions causing minor
                alarms are defined in the particular alarm specification or 
                specifications that is or are supported by the platform.

                When the underlying hardware is equipped with a visual indicator
                of the minor alarm status, the managed system insures that its 
                state reflects the state of this object."
        ::= { ctdAlarmEntry 1 }

ctdAlarmMajorAlarmStatus OBJECT-TYPE
        SYNTAX        AlarmStatus
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
                "Major alarm status of alarm module.

                A write operation on this object with value 'alarmed' causes the
                managed system to place the underlying major alarm hardware 
                into an alarmed state.  

                A write operation on this object will affect the value of
                'ctdAlarmMajorAlarmRelay'.  After a write operation on this 
                object with value 'alarmed' completes, the value of
                'ctdAlarmMajorAlarmRelay' is 'closed'.  After a write operation
                on this object with value 'notAlarmed' completes, the value of 
                'ctdAlarmMajorAlarmRelay' is 'open'.

                A read operation on this object returns value 'alarmed' if and
                only if the underlying major alarm hardware is in an alarmed
                state, otherwise it returns 'notAlarmed'.

                The value of this object may be affected by the device's local
                management interface and also by the managed system upon the 
                detection of an alarmable condition.  Conditions causing major 
                alarms are defined in the particular alarm specification or 
                specifications that is or are supported by the platform.

                When the underlying hardware is equipped with a visual indicator
                of the major alarm status, the managed system insures that its 
                state reflects the state of this object."
        ::= { ctdAlarmEntry 2 }

ctdAlarmCriticalAlarmStatus OBJECT-TYPE
        SYNTAX        AlarmStatus
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
                "Critical alarm status of alarm module.

                A write operation on this object with value 'alarmed' causes the
                managed system to place the underlying critical alarm hardware 
                into an alarmed state.

                A write operation on this object will affect the value of
                'ctdAlarmCriticalAlarmRelay'.  After a write operation on this
                object with value 'alarmed' completes, the value of
                'ctdAlarmCriticalAlarmRelay' is 'closed'.  After a write
                operation on this object with value 'notAlarmed' completes,
                the value of 'ctdAlarmCriticalAlarmRelay' is 'open'.

                A read operation on this object returns value 'alarmed' if and
                only if the underlying critical alarm hardware is in an alarmed
                state, otherwise it returns 'notAlarmed'.

                The value of this object may be affected by the device's local
                management interface and also by the managed system upon the 
                detection of an alarmable condition.  Conditions causing
                critical alarms are defined in the particular alarm 
                specification or specifications that is or are supported by the
                platform.

                When the underlying hardware is equipped with a visual indicator
                of the critical alarm status, the managed system insures that 
                its state reflects the state of this object."
        ::= { ctdAlarmEntry 3 }

ctdAlarmMinorAlarmRelay OBJECT-TYPE
        SYNTAX        AlarmRelay
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
                "Status of alarm module minor alarm relay.

                The value of this object can be affected:

                  directly by a write operation

                  by a write operation on 'ctdAlarmRelayReset' with value
                  'execute'.  When such a write operation completes, the value
                  of this object is 'open'.

                  by a write operation on 'ctdAlarmMinorAlarmStatus' as 
                  described in the description for that object.

                  by the managed system upon the detection of an alarmable 
                  condition

                  through the device's local management interface when an 
                  alarmable condition is raised or cleared

                  by an external alarm cutoff switch"
        ::= { ctdAlarmEntry 4 }

ctdAlarmMajorAlarmRelay OBJECT-TYPE
        SYNTAX        AlarmRelay
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
                "Status of alarm module major alarm relay.

                The value of this object can be affected:

                  directly by a write operation

                  by a write operation on 'ctdAlarmRelayReset' with value
                  'execute'.  When such a write operation completes, the value
                  of this object is 'open'.

                  by a write operation on 'ctdAlarmMajorAlarmStatus' as 
                  described in the description for that object.

                  by the managed system upon the detection of an alarmable 
                  condition

                  through the device's local management interface when an 
                  alarmable condition is raised or cleared

                  by an external alarm cutoff switch"
        ::= { ctdAlarmEntry 5 }

ctdAlarmCriticalAlarmRelay OBJECT-TYPE
        SYNTAX        AlarmRelay
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
                "Status of alarm module critical alarm relay.

                The value of this object can be affected:

                  directly by a write operation

                  by a write operation on 'ctdAlarmRelayReset' with value
                  'execute'.  When such a write operation completes, the value
                  of this object is 'open'.

                  by a write operation on 'ctdAlarmCriticalAlarmStatus' as 
                  described in the description for that object.

                  by the managed system upon the detection of an alarmable 
                  condition

                  through the device's local management interface when an 
                  alarmable condition is raised or cleared

                  by an external alarm cutoff switch"
        ::= { ctdAlarmEntry 6 }

-- timestamps for alarms

ctdAlarmMinorAlarmTimeStamp OBJECT-TYPE
        SYNTAX        TimeStamp
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "The value of sysUpTime at the most recent detection of a 
                condition causing the managed system to place the underlying 
                minor alarm hardware into an alarmed state.

                A value of 0 indicates that no such event has occurred since 
                the instantiation of this object."
        DEFVAL { 0 }
    ::= { ctdAlarmEntry 7 }

ctdAlarmMajorAlarmTimeStamp OBJECT-TYPE
        SYNTAX        TimeStamp
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "The value of sysUpTime at the most recent detection of a 
                condition causing the managed system to place the underlying 
                major alarm hardware into an alarmed state.

                A value of 0 indicates that no such event has occurred since 
                the instantiation of this object."
        DEFVAL { 0 }
    ::= { ctdAlarmEntry 8 }

ctdAlarmCriticalAlarmTimeStamp OBJECT-TYPE
        SYNTAX        TimeStamp
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "The value of sysUpTime at the most recent detection of a
                condition causing the managed system to place the underlying
                critical alarm hardware into an alarmed state.

                A value of 0 indicates that no such event has occurred since
                the instantiation of this object."
        DEFVAL { 0 }
    ::= { ctdAlarmEntry 9 }

ctdAlarmRelayReset OBJECT-TYPE
        SYNTAX        INTEGER { ready(   1 ),
                                execute( 2 )
                                }
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
                "A push button that is used to cause the managed system to open
                the minor, major and critical alarm relays associated with this
                device, thus resetting these relays to their initial state.

                After the completion of a write operation on this object with
                value 'execute', each of 'ctdAlarmMinorAlarmRelay',
                'ctdAlarmMajorAlarmRelay' and 'ctdAlarmCriticalAlarmRelay' 
                has value 'open'.

                A write operation on this object with value 'ready' has no
                effect.

                A read operation on this object always returns value 'ready'."
        ::= { ctdAlarmEntry 10 }

-- conformance information

ciscoTelcoPhyDevConformance     OBJECT IDENTIFIER 
                                        ::= { ciscoTelcoPhyDevMIB 3 }
ciscoTelcoPhyDevMIBCompliances  OBJECT IDENTIFIER 
                                        ::= { ciscoTelcoPhyDevConformance 1 }
ciscoTelcoPhyDevMIBGroups       OBJECT IDENTIFIER 
                                        ::= { ciscoTelcoPhyDevConformance 2 }

-- compliance statement

ctdMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
                "The compliance statement for SNMPv2 entities which
                implement the Cisco Telco Physical Device MIB"
    MODULE  -- this module

        GROUP           ctdNetClockGroup
        DESCRIPTION     "This group is required for the management of  
                        Telco network clock modules."
                
        GROUP           ctdAlarmGroup
        DESCRIPTION     "This group is required for the management of 
                        Telco alarm modules."

    ::= { ciscoTelcoPhyDevMIBCompliances 1 }

-- units of conformance

ctdNetClockGroup OBJECT-GROUP
    OBJECTS   { 
                ctdNetClockOnlineStatus,        ctdNetClockOscillatorHealth,
                ctdNetClockBITSLineMode,        ctdNetClockBITS0OperStatus,
                ctdNetClockBITS1OperStatus
                }

    STATUS    current
    DESCRIPTION
                "A collection of objects providing for the management of  
                Telco network clock modules in Cisco devices."
    ::= { ciscoTelcoPhyDevMIBGroups 1 }

ctdAlarmGroup OBJECT-GROUP
    OBJECTS   { 
                ctdAlarmMinorAlarmStatus,       ctdAlarmMajorAlarmStatus,
                ctdAlarmCriticalAlarmStatus,    ctdAlarmMinorAlarmRelay,
                ctdAlarmMajorAlarmRelay,        ctdAlarmCriticalAlarmRelay,
                ctdAlarmMinorAlarmTimeStamp,    ctdAlarmMajorAlarmTimeStamp,
                ctdAlarmCriticalAlarmTimeStamp, ctdAlarmRelayReset
                }

    STATUS    current
    DESCRIPTION
                "A collection of objects providing for the management
                of Telco alarm modules in Cisco devices."
    ::= { ciscoTelcoPhyDevMIBGroups 2 }

END